package com.watson.minio.springminio.file.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.watson.minio.springminio.file.entity.FileManage;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * @Description:
 * @Author: fan
 * @Data: 2021/5/8 9:58
 * @Version: 1.0v
 */
public interface FileManageService extends IService<FileManage> {

    /**
     * 上传文件
     * @param file 文件
     * @param module 文件分类
     * @return 访问路径
     */
    String fileUpload(MultipartFile file, String module);

    /**
     * 上传文件
     * @param file 文件
     * @param module 文件分类
     * @return 访问路径
     */
    String fileUpload(File file, String module);

    /**
     * 通过网络路径上传文件
     * @param url 文件网格路径
     * @param module 文件分类
     * @return 访问路径
     */
    String fileUpload(String url, String module);

    /**
     * 通过base64上传文件
     * @param base64 文件base64
     * @param module 文件分类
     * @return 访问路径
     * @throws IOException IO异常
     */
    String fileUploadByBase64(String base64, String module) throws IOException;

    /**
     * 批量上传本地文件
     * @param files 多个文件
     * @param module 文件分类
     * @return 访问路径集合
     */
    List<String> fileUploadBatch(MultipartFile[] files, String module);

}
